BBCodes [url] fejl

Tags:    php

Hej alle sammen :]

Jeg har lidt problemer med at få min BBCode til at virke som jeg gerne vil have den til.

Det er egentlig ret simpelt

Når jeg skriver mere end 1 link ,(url), i min tekst laver den al teksten i mellem den første (url) og den sidste (/url) til et langt link.

() = []

Selve min RegExp ser sådan her ud:
Fold kodeboks ind/udPHP kode 


Nogen der kan hjælpe mig med at finde ud af hvad der er galt og eventuelt finde en god løsning på det?

- Martin



Indlæg senest redigeret d. 13.01.2010 22:59 af Bruger #13203
4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
dit problem er at RegEx i php som standard er hvad man kalder "greedy". Dvs når du skriver (.+), (.*) eller (.?) vil den som standard vælge så mange tegn som muligt.

Tilføjer du et ? efter de to +-tegn i din kode vil de i stedet være "ungreedy" og dermed matche så få tegn som muligt.

Du kan også tilføje modifieren u for at gøre det ungreedy som standard :)

Din RegEx skal altså se sådan her ud:

Fold kodeboks ind/udPHP kode 


Kan se du har valgt at lave en for lowercase og en for uppercase.. Lad være med det ;) hvad nu hvis folk skriver [uRl= eller [URl= eller lign, så har vi pludselig et problem. Tilføj i stedet i modifieren som gør den in-case-sensitive :)



Indlæg senest redigeret d. 14.01.2010 08:45 af Bruger #15344
Mange tak for hjælpen :D
Det hjalp =D

Forresten så skal der tilføjes et i for at den er ligeglad med case =D
Sådan her:
Fold kodeboks ind/udPHP kode 




Det var så lidt ;)

Det med i'et var det jeg forsøgte at forklare til sidst :P selvom jeg godt kan se nu jeg læser det igen det ikke gik så godt *G*



Vil lige sige at i er vidunderlige! Var selv i samme problem og vupti Udvikleren har svarene ;)!



t